This invention identifies components in an electronic file.
An electronic document typically has information content, such as text, graphics, and tables, and formatting content that directs how to display the information content. Document publishing systems, which include word processing systems and desktop publishing systems, may store electronic documents as hierarchical data structures. Such structures represent the information content and formatting content as nodes connected to one another in an ordered arrangement.
A system traverses a data structure to gather data about the structure and to perform operations using that data. To traverse a hierarchical structure, the system follows a set of links from one node to another.
The links between the nodes are sometimes described in terms of family relationships. A node attached to and above another node in the hierarchical structure is referred to as the parent of the latter node. A node attached to and below another node in the hierarchical structure is referred to as the child of the latter node. Nodes having the same parent are referred to as siblings.
In addition to specifying nodal relationships in terms of familial links, systems may identify the relationship between nodes in terms of next and previous links. Next and previous links ignore the familial relationships and deal with incremental positions of nodes within a document.
Familial links, and next and previous links will be referred to as "base links." The base links connect every node in the structure and define the structure's hierarchy. A system uses the base links to traverse the structure and discover the structure's organization. The structure's organization determines the order of processing for certain types of operations. For example, a spell checker may use the base links to examine each word in an electronic document from the beginning to the end of the document. The structure's organization also determines which nodes share behavior characteristics with other nodes. For example, a node may define paragraph characteristics that are inherited and refined by descendent nodes.
Other than a set of base links that connect all nodes in a hierarchical data structure, a system can have sets of direct links to connect nodes in the same or in different branches of a hierarchical data structure. Direct links locate nodes that may have an effect upon each other under a certain set of circumstances. For example, if an author inserted a numbered section heading into a document, the system could use one set of direct links between numbered section heading nodes to find and renumber all subsequent section headings. Direct links are also useful in other situations, for example to identify components of a detailed outline, identify components of a brief outline, locate all index markers, and locate all bibliographic references.